From e7c0c6546d12bb8ef6720d216cc9bde8b4e7d904 Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Sat, 11 Apr 2026 14:12:08 +0200 Subject: [PATCH] [PATCH 1/2] lib-managesieve: managesieve-parser - Fix handling of lone CR character Gbp-Pq: Name 0001-lib-managesieve-managesieve-parser-Fix-handling-of-l.patch --- pigeonhole/src/lib-managesieve/managesieve-parser.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pigeonhole/src/lib-managesieve/managesieve-parser.c b/pigeonhole/src/lib-managesieve/managesieve-parser.c index 546e431..3d34c1c 100644 --- a/pigeonhole/src/lib-managesieve/managesieve-parser.c +++ b/pigeonhole/src/lib-managesieve/managesieve-parser.c @@ -441,6 +441,15 @@ static bool managesieve_parser_read_arg(struct managesieve_parser *parser) switch (data[0]) { case '\r': + if (data_size == 1) { + /* Wait for LF */ + return FALSE; + } + if (data[1] != '\n') { + parser->error = "CR sent without LF"; + return FALSE; + } + /* Fall through */ case '\n': /* Unexpected end of line */ parser->eol = TRUE; -- 2.39.5